
import KY3D from "@/editor/KY3D";
import { CurMode } from "@/libs/const/enum";
import { update } from "@tweenjs/tween.js";

export default class RenderMgr implements IMgr {

    startUp(): void {
        console.log('render mgr start up');
        KY3D.mode = CurMode.SPECT;
    }

    dispose(): void {

    }

    render(): void {

        const scenemgr = KY3D.MGR.scene;
        // 渲染编辑器
        if (scenemgr.main.render) {
            scenemgr.main.render.render(scenemgr.main.scene, scenemgr.main.camera);
            if (scenemgr.idc) {
                scenemgr.idc.changeFace();
                scenemgr.idc.camera.position.copy(scenemgr.main.camera.position.clone().sub(scenemgr.main.controls.target));
                scenemgr.idc.camera.updateProjectionMatrix();
                scenemgr.idc.camera.lookAt(scenemgr.main.scene.position);

                scenemgr.idc.render.render(scenemgr.idc.scene, scenemgr.idc.camera);
            }
            if(scenemgr.hud){
                scenemgr.hud.render.render(scenemgr.main.scene, scenemgr.hud.camera);
            }

        }
        if (scenemgr.main.css2dRender) {
            scenemgr.main.css2dRender.render(scenemgr.main.scene, scenemgr.main.camera);
        }
      
        // 更新
        scenemgr.update();

        // 防止 TWEEN.js未加载完成导致报错
        try {
            update(undefined);
        }
        catch (error) {
            console.log("Tween.js update error!")
        }

    }
}